#ifndef _DRIVER_MAIN_H_
#define _DRIVER_MAIN_H_

#include <ntddk.h>


NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, 
					 IN PUNICODE_STRING pRegistryPath);


#define DEVICE_NAME     L"\\Device\\PProtect11"
#define DEVICE_SYMNAME  L"\\??\\PProtect11"

#define MY_MEM_TAG 'MYT'

PCHAR MJ_FUNC_NAME[] = {"IRP_MJ_CREATE", 
						"IRP_MJ_CREATE_NAMED_PIPE", 
						"IRP_MJ_CLOSE",
						"IRP_MJ_READ",
						"IRP_MJ_WRITE",
						"IRP_MJ_QUERY_INFORMATION",
						"IRP_MJ_SET_INFORMATION",
						"IRP_MJ_QUERY_EA",
						"IRP_MJ_SET_EA",
						"IRP_MJ_FLUSH_BUFFERS",
						"IRP_MJ_QUERY_VOLUME_INFORMATION",
						"IRP_MJ_SET_VOLUME_INFORMATION",
						"IRP_MJ_DIRECTORY_CONTROL",
						"IRP_MJ_FILE_SYSTEM_CONTROL",
						"IRP_MJ_DEVICE_CONTROL",
						"IRP_MJ_INTERNAL_DEVICE_CONTROL",
						"IRP_MJ_SHUTDOWN",
						"IRP_MJ_LOCK_CONTROL",
						"IRP_MJ_CLEANUP",
						"IRP_MJ_CREATE_MAILSLOT",
						"IRP_MJ_QUERY_SECURITY",
						"IRP_MJ_SET_SECURITY",
						"IRP_MJ_POWER",
						"IRP_MJ_SYSTEM_CONTROL",
						"IRP_MJ_DEVICE_CHANGE",
						"IRP_MJ_QUERY_QUOTA",
						"IRP_MJ_SET_QUOTA",
						"IRP_MJ_PNP",
						"IRP_MJ_PNP_POWER"};


#define CTL_SET_PRO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS)

#endif